557dd1f1c448627c420f73ad355a9a2adc2700f2,org.springframework.transaction/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java,AbstractPlatformTransactionManager,handleExistingTransaction,#TransactionDefinition#Object#boolean#,394

Before Change


				// in case of a pre-existing JTA transaction.
				doBegin(transaction, definition);
				boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
				return newTransactionStatus(definition, transaction, true, newSynchronization, debugEnabled, null);
			}
		}

After Change


				// Usually only for JTA: Spring synchronization might get activated here
				// in case of a pre-existing JTA transaction.
				boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
				DefaultTransactionStatus status = newTransactionStatus(
						definition, transaction, true, newSynchronization, debugEnabled, null);
				try {
					doBegin(transaction, definition);
				}
				catch (RuntimeException beginEx) {
					if (status != null && status.isNewSynchronization()) {
						TransactionSynchronizationManager.clear();
					}
					throw beginEx;
				}
				catch (Error beginErr) {
					if (status != null && status.isNewSynchronization()) {
						TransactionSynchronizationManager.clear();
					}
					throw beginErr;
				}
				return status;
			}
		}